/**

This file is part of MaCI/GIMnet.

MaCI/GIMnet is free software: you can redistribute it and/or modify it 
under the terms of the GNU Lesser General Public License as published 
by the Free Software Foundation, either version 3 of the License, or 
(at your option) any later version.

MaCI/GIMnet is distributed in the hope that it will be useful, but WITHOUT 
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public 
License for more details.

You should have received a copy of the GNU Lesser General Public 
License along with GIMnet. (See COPYING.LESSER) If not, see 
<http://www.gnu.org/licenses/>.

**/
#include "Logger.hpp"

///MACI INTERFACES
#include "RangingClient.hpp"
#include "PositionClient.hpp"
#include "SpeedCtrlClient.hpp"
#include "IMUClient.hpp"
#include "EnergyClient.hpp"
#include "CoordinateDriveClient.hpp"
#include "ImageClient.hpp"

///LOGGER TYPES
#include "Logger.hpp"
#include "RangingLogger.hpp"
#include "PositionLogger.hpp"
#include "SpeedCtrlLogger.hpp"
#include "IMULogger.hpp"
#include "EnergyLogger.hpp"
#include "WirelessLogger.hpp"
#include "CoordinateDriveLogger.hpp"
#include "ImageLogger.hpp"


class LoggerGenerator{



public:

  LoggerGenerator(gimi::GIMI *aGimi);
  ~LoggerGenerator();

  Logger * GenerateNewLogger(int32_t majorType, int32_t minorType,
                             const unsigned int aTargetId,std::string aMaCISLName);

private:
  gimi::GIMI *iGIMI;

  LoggerGenerator(const LoggerGenerator&):
    iGIMI(NULL)
  {}

  LoggerGenerator &operator=(const LoggerGenerator&){return *this;}

};

